1. Field of the Invention
The present invention relates to data input equipment for entering data to a data processing system and, in particular, to an event driven wake-up system for minimizing current consumption by a microcontroller that controls the data input equipment.
2. Discussion of the Prior Art
The most common data input device for a data processing system is a keyboard.
In its basic form, a keyboard consists of a matrix of push-button key switches. Key switch closure is detected by continuously scanning the matrix. According to the scanning technique, each key is identified as an X-Y coordinate, as shown in FIG. 1. To enable keyboard scanning, the keyboard matrix provides a series of X output lines (X.sub.1, X.sub.2, X.sub.3 in FIG. 1) and has a set of Y input lines (Y.sub.1, Y.sub.2, . . . Y.sub.10 in FIG. 1). These output and input lines are scanned by sequentially providing a logic 0 to each of the X outputs and looking for it on each Y input. An X counter maintains the identity of the X line to which the logic 0 is provided. A Y counter maintains the identity of the Y line being monitored. When a particular Y input is found to have a logic 0 present, the state of the X and Y counters is also examined. For example, a logic 0 on input Y.sub.4 when output X.sub.2 is also low indicates that the "F" key is depressed.
Since the overhead required to scan the keyboard would place an unnecessary time burden on the data processing system's central processing unit (CPU), time which can be better spent performing more complex tasks, a microcontroller device is typically used to scan the keyboard, map the Y input received from the keyboard matrix to a corresponding keycode data character, and present the CPU with the data characters entered from the keyboard.
The microcontroller sends clock pulses to the keyboard matrix X outputs and, after each pulse, reads the Y inputs to determine whether a key switch in the currently pulsed X row of the keyboard matrix is depressed. A look-up table is used to map to the corresponding keycode based on the X and Y counter values when a logic 0 is read on a Y input.
Conventional computer keyboards use continuous scanning techniques to detect a pressed or released key. Scanning continues even when the keyboard is inactive. This results in very high current consumption by the microcontroller. In some data processing systems that rely on battery power, such as lap top computers, this current consumption can severely limit the use of the system.